home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
8434
/
8434.xpi
/
chrome
/
content
/
update.js
< prev
next >
Wrap
Text File
|
2008-11-16
|
4KB
|
127 lines
var stylesToUpdate = [];
var enumerator, progress, styleCount, style, list, strings;
var numberDone = 0;
function init() {
list = document.getElementById("style-list");
styleCount = GoogleRedesignedStyle.prototype.ds.getNode(GoogleRedesignedStyle.prototype.containerURI).getChildCount();
enumerator = GoogleRedesignedStyle.prototype.ds.getNode(GoogleRedesignedStyle.prototype.containerURI).getChildren();
progress = document.getElementById("progress");
strings = document.getElementById("strings");
checkNext();
}
function updateAll() {
document.getElementById("update-all").setAttribute("disabled", "true");
update(stylesToUpdate);
stylesToUpdate = [];
GoogleRedesignedStyle.prototype.ds.save();
}
function update(styles) {
progress.style.display = "";
for (var i = 0; i < styles.length; i++) {
var originallyEnabled = styles[i].enabled;
if (originallyEnabled) {
styles[i].enabled = false;
}
styles[i].code = styles[i].updatedCode;
styles[i].originalCode = styles[i].updatedCode;
styles[i].customized = false;
if (originallyEnabled) {
styles[i].enabled = true;
}
list.removeChild(document.getElementById(styles[i].uri));
progress.setAttribute("value", (0 + i) / styles.length * 100 + "%");
}
progress.style.display = "none";
progress.setAttribute("value", "0%");
}
function neverUpdate(styles) {
for (var i = 0; i < styles.length; i++) {
styles[i].neverUpdate = true;
list.removeChild(document.getElementById(styles[i].uri));
}
}
function checkNext() {
if (enumerator.hasMoreElements()) {
style = new GoogleRedesignedStyle(enumerator.getNext());
style.checkForUpdate(updateCheckDone);
} else {
progress.style.display = "none";
progress.setAttribute("value", "0%");
document.getElementById("style-list-tree").setAttribute("disabled", "false");
if (stylesToUpdate.length > 0) {
document.getElementById("update-all").setAttribute("disabled", "false");
}
}
}
function updateCheckDone(updatedCode) {
if (updatedCode) {
style.updatedCode = updatedCode;
var item = document.createElementNS(googleredesignedCommon.XULNS, "treeitem");
item.setAttribute("id", style.uri);
var row = document.createElementNS(googleredesignedCommon.XULNS, "treerow");
var uriCell = document.createElementNS(googleredesignedCommon.XULNS, "treecell");
uriCell.setAttribute("label", style.uri);
var descriptionCell = document.createElementNS(googleredesignedCommon.XULNS, "treecell");
descriptionCell.setAttribute("label", style.description);
var customizedCell = document.createElementNS(googleredesignedCommon.XULNS, "treecell");
customizedCell.setAttribute("label", style.customized ? strings.getString("yes") : strings.getString("no"));
customizedCell.setAttribute("class", "customized-column");
row.appendChild(uriCell);
row.appendChild(descriptionCell);
row.appendChild(customizedCell);
item.appendChild(row);
list.appendChild(item);
stylesToUpdate.push(style);
}
numberDone++;
progress.setAttribute("value", (0 + numberDone) / styleCount * 100 + "%");
checkNext();
}
function updateSelected(never) {
var indices = getSelectedIndices();
var styles = [];
for (var i = 0; i < indices.length; i++) {
styles.push(stylesToUpdate[indices[i]]);
}
var stylesNotUpdated = [];
for (var i = 0; i < stylesToUpdate.length; i++) {
var found = false;
for (var j = 0; j < indices.length; j++) {
if (i == indices[j]) {
found = true;
break;
}
}
if (!found) {
stylesNotUpdated.push(stylesToUpdate[i]);
}
}
if (never) {
neverUpdate(styles);
} else {
update(styles);
}
stylesToUpdate = stylesNotUpdated;
if (stylesToUpdate.length == 0) {
document.getElementById("update-all").setAttribute("disabled", "true");
}
GoogleRedesignedStyle.prototype.ds.save();
}
function getSelectedIndices() {
var indices = [];
var rangeCount = list.parentNode.view.selection.getRangeCount();
for (var i = 0; i < rangeCount; i++) {
var start = {};
var end = {};
list.parentNode.view.selection.getRangeAt(i, start, end);
for (var c = start.value; c <= end.value; c++) {
indices.push(c);
}
}
return indices;
}
function changeSelection() {
document.getElementById("update-selected").setAttribute("disabled", getSelectedIndices().length == 0 ? "true" : "false");
document.getElementById("never-update-selected").setAttribute("disabled", getSelectedIndices().length == 0 ? "true" : "false");
}